In recent years, cloud computing has become a new consumption and delivery model inspired by consumer Internet services. Cloud computing is a service model for IT provision, often based on virtualization and distributed computing technologies and typically on-demand. For an introduction to cloud computing, see ENISA, “Cloud computing benefits, risks and recommendations for information security,” The European Network and Information Security Agency (ENISA), 2009 November.
Benefits of cloud computing architectures include highly abstracted resources, near instant scalability and flexibility, near instantaneous provisioning, shared resources (e.g., hardware, database, memory), ‘service on demand’ usually with a ‘pay as you go’ billing system, programmatic management, e.g., through Web service API. With cloud computing, companies can instantly scale up to the computation or storage capacities on demand without having to invest in new infrastructure.
Cloud computing supports the infrastructure layered concept by incorporating three service models, namely Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS).
Cloud Infrastructure as service (IaaS) provides virtual machines and other abstracted hardware and operating systems which may be controlled through a service API. The capability provided to the subscriber is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. IaaS is easier to understand if we refer it as Hardware as a Service. We categorize Hardware as a Service into (i) Computation as a Service (CaaS) that offers virtual machine based servers; and (ii) Data as a Service (DaaS) that offers data storage space.
Cloud Platform as a service (PaaS) allows customers to develop new applications using APIs deployed and configurable remotely. The platforms offered include development tools, configuration management, and deployment platforms. The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider. The PaaS model typically operates one level above IaaS. The OS environment and an application development framework are already offered, while PaaS operates with an application environment.
Software as a service (SaaS) is software provided to the consumer enables use of the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
One feature of cloud computing is the capacity to virtualize and share resources among different applications, for example, to maximize the return on investment for machine utilization. Unlike the non-virtualized environment where each application runs on its own servers, virtualization enables one host machine to be virtualized to support multiple independent operating systems and applications. This may result in cost savings, e.g., of a subscriber for hardware acquisition and maintenance costs.
Virtualization is the simulation of the software and/or hardware upon which other software runs. A virtual machine, referred to as VM is a simulated environment created by virtualization. Virtual machines are managed by virtual machine monitor (VMM), also referred to as a ‘hypervisor’. A hypervisor is a virtualization component that manages the guest OSs on a host machine and controls the flow of instructions between the guest OSs and the physical hardware.
Cloud computing is a new model for delivering computing resources, such as networks, servers, storage, or software applications. Cloud computing is used increasingly. However, certain market sectors which deal with sensitive data, such as healthcare, are hesitant due to privacy and security concerns. Storing sensitive data and/or applications in the cloud raises legal, business and ethical issues. Not only confidentiality of data is a concern, also that of software. For example, if an application stored in a commodity public cloud is executed with a standardized virtual machine (VM), the data can be disclosed and the execution of the application can be observed.